home *** CD-ROM | disk | FTP | other *** search
/ Chip 1996 November / Chip 11-96.iso / treiber / grafik / diamond / viper / viperse / win3x / se / sed107.exe / rar / OEMSETUP.INF < prev    next >
INI File  |  1994-06-24  |  25KB  |  662 lines

  1. ;-----------------------------------------------------------------------
  2. ; OPTION TYPE
  3. ; -----------
  4. ; This identifies the Option type we are dealing with.  The different
  5. ; possible types are:
  6. ;
  7. ; COMPUTER, VIDEO, MOUSE, KEYBOARD, LAYOUT, SCSI, PRINTER, ...
  8. ;-----------------------------------------------------------------------
  9.  
  10. [Identification]
  11.     OptionType = VIDEO
  12.  
  13. ;-----------------------------------------------------------------------
  14. ; LANGUAGES SUPPORTED
  15. ; -------------------
  16. ;
  17. ; The languages supported by the OEM INF, For every language supported
  18. ; we need to have a separate text section for every displayable text
  19. ; section.
  20. ;
  21. ;-----------------------------------------------------------------------
  22.  
  23. [LanguagesSupported]
  24.     ENG
  25.  
  26. ;-----------------------------------------------------------------------
  27. ; OPTION LIST
  28. ; -----------
  29. ; This section lists the OEM Option key names.  These keys are locale
  30. ; independent and used to represent the option in a locale independent
  31. ; manner.
  32. ;
  33. ;-----------------------------------------------------------------------
  34.  
  35. ;
  36. ; Option list order: Option = Miniport driver, BitsPerPel, XResolution, YResolution, VRefresh, Interlaced
  37. ;
  38. ; If you don't want to create a VRefresh or Interlaced value under the service
  39. ; parameters then use the value ""
  40. ;
  41.  
  42. [Options]
  43.     "Weitek P9100 640x480x8, 60 Hz"      = P9100,  8,   640,  480,  60,  0
  44.     "Weitek P9100 640x480x16, 60 Hz"     = P9100,  16,  640,  480,  60,  0
  45.     "Weitek P9100 640x480x24, 60 Hz"     = P9100,  24,  640,  480,  60,  0
  46.     "Weitek P9100 640x480x32, 60 Hz"     = P9100,  32,  640,  480,  60,  0
  47.     "Weitek P9100 640x480x8, 72 Hz"      = P9100,  8,   640,  480,  72,  0
  48.     "Weitek P9100 640x480x16, 72 Hz"     = P9100,  16,  640,  480,  72,  0
  49.     "Weitek P9100 640x480x24, 72 Hz"     = P9100,  24,  640,  480,  72,  0
  50.     "Weitek P9100 640x480x32, 72 Hz"     = P9100,  32,  640,  480,  72,  0
  51.     "Weitek P9100 800x600x8, 60 Hz"      = P9100,  8,   800,  600,  60,  0
  52.     "Weitek P9100 800x600x8, 72 Hz"      = P9100,  8,   800,  600,  72,  0
  53.     "Weitek P9100 800x600x16, 60 Hz"    = P9100,  16,  800,  600,  60,  0
  54.     "Weitek P9100 800x600x16, 72 Hz"    = P9100,  16,  800,  600,  72,  0
  55.     "Weitek P9100 800x600x24, 60 Hz"    = P9100,  24,  800,  600,  60,  0
  56.     "Weitek P9100 800x600x24, 72 Hz"    = P9100,  24,  800,  600,  72,  0
  57.     "Weitek P9100 800x600x32, 60 Hz"    = P9100,  32,  800,  600,  60,  0
  58.     "Weitek P9100 800x600x32, 72 Hz"    = P9100,  32,  800,  600,  72,  0
  59.     "Weitek P9100 1024x768x8, 60 Hz"    = P9100,  8,  1024,  768,  60,  0
  60.     "Weitek P9100 1024x768x8, 70 Hz"    = P9100,  8,  1024,  768,  70,  0
  61.     "Weitek P9100 1024x768x16, 60 Hz"   = P9100,  16, 1024,  768,  60,  0
  62.     "Weitek P9100 1024x768x16, 70 Hz"   = P9100,  16, 1024,  768,  70,  0
  63.     "Weitek P9100 1024x768x24, 60 Hz"   = P9100,  24, 1024,  768,  60,  0
  64.     "Weitek P9100 1024x768x24, 70 Hz"   = P9100,  24, 1024,  768,  70,  0
  65.     "Weitek P9100 1024x768x32, 60 Hz"   = P9100,  32, 1024,  768,  60,  0
  66.     "Weitek P9100 1024x768x32, 70 Hz"   = P9100,  32, 1024,  768,  70,  0
  67.     "Weitek P9100 1280x1024x8, 60 Hz"   = P9100,  8,  1280,  1024, 60,  0
  68.     "Weitek P9100 1280x1024x8, 74 Hz"   = P9100,  8,  1280,  1024, 74,  0
  69.     "Weitek P9100 1280x1024x8, 75 Hz"   = P9100,  8,  1280,  1024, 75,  0
  70.     "Weitek P9100 1280x1024x16, 60 Hz"  = P9100,  16, 1280,  1024, 60,  0
  71.     "Weitek P9100 1280x1024x16, 74 Hz"  = P9100,  16, 1280,  1024, 74,  0
  72.     "Weitek P9100 1280x1024x16, 75 Hz"  = P9100,  16, 1280,  1024, 75,  0
  73.     "Weitek P9100 1280x1024x24, 60 Hz"  = P9100,  24, 1280,  1024, 60,  0
  74.     "Weitek P9100 1280x1024x24, 74 Hz"  = P9100,  24, 1280,  1024, 74,  0
  75.     "Weitek P9100 1280x1024x24, 75 Hz"  = P9100,  24, 1280,  1024, 75,  0
  76.     "Weitek P9100 1600x1280x8, 60 Hz"   = P9100,  8,  1600,  1200, 60,  0
  77.     "Weitek P9100 1600x1280x16, 60 Hz"  = P9100,  16, 1600,  1200, 60,  0
  78.  
  79. ;
  80. ; This maps detected options into the options we support
  81. ;
  82. ; Format: DetectedOption = MappedOption
  83. ;
  84.  
  85.  
  86. ;       *** This section is NOT required ***
  87.  
  88.  
  89.  
  90. ;
  91. ; Order of the information:
  92. ;
  93. ; Port driver = Type, Group, ErrorControl, Tag, InstalledDisplay, VgaCompatible( 0/1 ), EventMessageFile, TypesSupported
  94. ;
  95.  
  96. [MiniportDrivers]
  97.     P9100  = !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_IGNORE, 33, {P9100}, 0, %SystemRoot%\System32\IoLogMsg.dll , 7
  98.  
  99. ;-----------------------------------------------------------------------
  100. ; OPTION TEXT SECTION
  101. ; -------------------
  102. ; These are text strings used to identify the option to the user.  There
  103. ; are separate sections for each language supported.  The format of the
  104. ; section name is "OptionsText" concatenated with the Language represented
  105. ; by the section.
  106. ;
  107. ;-----------------------------------------------------------------------
  108.  
  109. [OptionsTextENG]
  110.     "Weitek P9100 640x480x8, 60 Hz"       =  "Weitek P9100   640x480, 256 colors, 60 Hz"
  111.     "Weitek P9100 640x480x16, 60 Hz"      =  "Weitek P9100   640x480, 16BPP, 60 Hz"
  112.     "Weitek P9100 640x480x24, 60 Hz"      =  "Weitek P9100   640x480, 24BPP, 60 Hz"
  113.     "Weitek P9100 640x480x32, 60 Hz"      =  "Weitek P9100   640x480, 32BPP, 60 Hz"
  114.     "Weitek P9100 640x480x8, 72 Hz"       =  "Weitek P9100   640x480, 256 colors, 72 Hz"
  115.     "Weitek P9100 640x480x16, 72 Hz"      =  "Weitek P9100   640x480, 16BPP, 72 Hz"
  116.     "Weitek P9100 640x480x24, 72 Hz"      =  "Weitek P9100   640x480, 24BPP, 72 Hz"
  117.     "Weitek P9100 640x480x32, 72 Hz"      =  "Weitek P9100   640x480, 32BPP, 72 Hz"
  118.     "Weitek P9100 800x600x8, 60 Hz"       =  "Weitek P9100   800x600, 256 colors, 60 Hz"
  119.     "Weitek P9100 800x600x8, 72 Hz"       =  "Weitek P9100   800x600, 256 colors, 72 Hz"
  120.     "Weitek P9100 800x600x16, 60 Hz"      =  "Weitek P9100   800x600, 16BPP, 60 Hz"
  121.     "Weitek P9100 800x600x16, 72 Hz"      =  "Weitek P9100   800x600, 16BPP, 72 Hz"
  122.     "Weitek P9100 800x600x24, 60 Hz"      =  "Weitek P9100   800x600, 24BPP, 60 Hz"
  123.     "Weitek P9100 800x600x24, 72 Hz"      =  "Weitek P9100   800x600, 24BPP, 72 Hz"
  124.     "Weitek P9100 800x600x32, 60 Hz"      =  "Weitek P9100   800x600, 32BPP, 60 Hz"
  125.     "Weitek P9100 800x600x32, 72 Hz"      =  "Weitek P9100   800x600, 32BPP, 72 Hz"
  126.     "Weitek P9100 1024x768x8, 60 Hz"      =  "Weitek P9100  1024x768, 256 colors, 60 Hz"
  127.     "Weitek P9100 1024x768x8, 70 Hz"      =  "Weitek P9100  1024x768, 256 colors, 70 Hz"
  128.     "Weitek P9100 1024x768x16, 60 Hz"     =  "Weitek P9100  1024x768, 16BPP, 60 Hz"
  129.     "Weitek P9100 1024x768x16, 70 Hz"     =  "Weitek P9100  1024x768, 16BPP, 70 Hz"
  130.     "Weitek P9100 1024x768x24, 60 Hz"     =  "Weitek P9100  1024x768, 24BPP, 60 Hz"
  131.     "Weitek P9100 1024x768x24, 70 Hz"     =  "Weitek P9100  1024x768, 24BPP, 70 Hz"
  132.     "Weitek P9100 1024x768x32, 60 Hz"     =  "Weitek P9100  1024x768, 32BPP, 60 Hz"
  133.     "Weitek P9100 1024x768x32, 70 Hz"     =  "Weitek P9100  1024x768, 32BPP, 70 Hz"
  134.     "Weitek P9100 1280x1024x8, 60 Hz"     =  "Weitek P9100 1280x1024, 256 colors, 60 Hz"
  135.     "Weitek P9100 1280x1024x8, 74 Hz"     =  "Weitek P9100 1280x1024, 256 colors, 74 Hz"
  136.     "Weitek P9100 1280x1024x8, 75 Hz"     =  "Weitek P9100 1280x1024, 256 colors, 75 Hz"
  137.     "Weitek P9100 1280x1024x16, 60 Hz"     =  "Weitek P9100 1280x1024, 16BPP, 60 Hz"
  138.     "Weitek P9100 1280x1024x16, 74 Hz"     =  "Weitek P9100 1280x1024, 16BPP, 74 Hz"
  139.     "Weitek P9100 1280x1024x16, 75 Hz"     =  "Weitek P9100 1280x1024, 16BPP, 75 Hz"
  140.     "Weitek P9100 1280x1024x24, 60 Hz"     =  "Weitek P9100 1280x1024, 24BPP, 60 Hz"
  141.     "Weitek P9100 1280x1024x24, 74 Hz"     =  "Weitek P9100 1280x1024, 24BPP, 74 Hz"
  142.     "Weitek P9100 1280x1024x24, 75 Hz"     =  "Weitek P9100 1280x1024, 24BPP, 75 Hz"
  143.     "Weitek P9100 1600x1200x8, 60 Hz"      =  "Weitek P9100 1600x1200, 256 colors, 60 Hz"
  144.     "Weitek P9100 1600x1200x16, 60 Hz"     =  "Weitek P9100 1600x1200, 16BPP, 60 Hz"
  145.  
  146. ;---------------------------------------------------------------------------
  147. ; 1. Identify
  148. ;
  149. ; DESCRIPTION:   To verify that this INF deals with the same type of options
  150. ;                as we are choosing currently.
  151. ;
  152. ; INPUT:         None
  153. ;
  154. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL
  155. ;                $($R1): Option Type (COMPUTER ...)
  156. ;                $($R2): Diskette description
  157. ;---------------------------------------------------------------------------
  158.  
  159. [Identify]
  160.     ;
  161.     ;
  162.     read-syms Identification
  163.  
  164.     set Status     = STATUS_SUCCESSFUL
  165.     set Identifier = $(OptionType)
  166.     set Media      = #("Source Media Descriptions", 1, 1)
  167.  
  168.     Return $(Status) $(Identifier) $(Media)
  169.  
  170.  
  171.  
  172. ;------------------------------------------------------------------------
  173. ; 2. ReturnOptions:
  174. ;
  175. ; DESCRIPTION:   To return the option list supported by this INF and the
  176. ;                localised text list representing the options.
  177. ;
  178. ;
  179. ; INPUT:         $($0):  Language used. ( ENG | FRN | ... )
  180. ;
  181. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL |
  182. ;                                STATUS_NOLANGUAGE
  183. ;                                STATUS_FAILED
  184. ;
  185. ;                $($R1): Option List
  186. ;                $($R2): Option Text List
  187. ;------------------------------------------------------------------------
  188.  
  189. [ReturnOptions]
  190.     ;
  191.     ;
  192.     set Status        = STATUS_FAILED
  193.     set OptionList     = {}
  194.     set OptionTextList = {}
  195.  
  196.     ;
  197.     ; Check if the language requested is supported
  198.     ;
  199.     set LanguageList = ^(LanguagesSupported, 1)
  200.     Ifcontains(i) $($0) in $(LanguageList)
  201.         goto returnoptions
  202.     else
  203.         set Status = STATUS_NOLANGUAGE
  204.         goto finish_ReturnOptions
  205.     endif
  206.  
  207.     ;
  208.     ; form a list of all the options and another of the text representing
  209.     ;
  210.  
  211. returnoptions = +
  212.     set OptionList     = ^(Options, 0)
  213.     set OptionTextList = ^(OptionsText$($0), 1)
  214.     set Status         = STATUS_SUCCESSFUL
  215.  
  216. finish_ReturnOptions = +
  217.     Return $(Status) $(OptionList) $(OptionTextList)
  218.  
  219.  
  220.  
  221. ;---------------------------------------------------------------------------
  222. ; MapToSupportedOption
  223. ;
  224. ; DESCRIPTION:   To map a hardware detected option to the NT Supported
  225. ;                option which represents it.
  226. ;
  227. ; INPUT:         $($0): Option
  228. ;
  229. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL
  230. ;                $($R1): Mapped Option
  231. ;
  232. ;---------------------------------------------------------------------------
  233.  
  234. [MapToSupportedOption]
  235.     ;
  236.     set Status = STATUS_FAILED
  237.     set MappedOption = $($0)
  238.  
  239.     ;
  240.     ; If the option is one we can support using one of our standard options
  241.     ; then map it to the standard option else map it to the default option
  242.     ; which is VGA.
  243.     ;
  244.  
  245.     set OptionList = ^(MapOfOptions, 0)
  246.     ifcontains $($0) in $(OptionList)
  247.         set MappedOption = #(MapOfOptions, $($0), 1)
  248.     else
  249.         set MappedOption = "VGA"
  250.     endif
  251.  
  252.     set Status = STATUS_SUCCESSFUL
  253.     Return $(Status) $(MappedOption)
  254.  
  255.  
  256.  
  257. [ServicesEntry]
  258.     CurrentEntry = "" ? $(!LIBHANDLE) GetDevicemapValue Video \Device\Video0
  259.  
  260.  
  261. ;
  262. ; InstallOption:
  263. ;
  264. ; FUNCTION:  To copy files representing Options
  265. ;            To configure the installed option
  266. ;            To update the registry for the installed option
  267. ;
  268. ; INPUT:     $($0):  Language to use
  269. ;            $($1):  OptionID to install
  270. ;            $($2):  SourceDirectory
  271. ;            $($3):  AddCopy  (YES | NO)
  272. ;            $($4):  DoCopy   (YES | NO)
  273. ;            $($5):  DoConfig (YES | NO)
  274. ;
  275. ; OUTPUT:    $($R0): STATUS: STATUS_SUCCESSFUL |
  276. ;                            STATUS_NOLANGUAGE |
  277. ;                            STATUS_USERCANCEL |
  278. ;                            STATUS_FAILED
  279. ;
  280.  
  281. [InstallOption]
  282.  
  283.     ;
  284.     ; Set default values for
  285.     ;
  286.     set Status       = STATUS_FAILED
  287.     set DrivesToFree = {}
  288.  
  289.     ;
  290.     ; extract parameters
  291.     ;
  292.     set Option   = $($1)
  293.     set SrcDir   = $($2)
  294.     set AddCopy  = $($3)
  295.     set DoCopy   = $($4)
  296.     set DoConfig = $($5)
  297.  
  298.     ;
  299.     ; Check if the language requested is supported
  300.     ;
  301.     set LanguageList = ^(LanguagesSupported, 1)
  302.     Ifcontains(i) $($0) in $(LanguageList)
  303.     else
  304.         set Status = STATUS_NOLANGUAGE
  305.         goto finish_InstallOption
  306.     endif
  307.     read-syms Strings$($0)
  308.  
  309.     ;
  310.     ; check to see if Option is supported.
  311.     ;
  312.  
  313.     set OptionList = ^(Options, 0)
  314.     ifcontains $(Option) in $(OptionList)
  315.     else
  316.         goto finish_InstallOption
  317.     endif
  318.     set OptionList = ""
  319.  
  320.     ;
  321.     ; Option has been defined already
  322.     ;
  323.     set MiniportDriver    = #(Options, $(Option), 1)
  324.     set BitsPerPel        = #(Options, $(Option), 2)
  325.     set XResolution       = #(Options, $(Option), 3)
  326.     set YResolution       = #(Options, $(Option), 4)
  327.     set VRefresh          = #(Options, $(Option), 5)
  328.     set Interlaced        = #(Options, $(Option), 6)
  329.  
  330.     set Type              = $(#(MiniportDrivers, $(MiniportDriver), 1))
  331.     set Group             =   #(MiniportDrivers, $(MiniportDriver), 2)
  332.     set ErrorControl      = $(#(MiniportDrivers, $(MiniportDriver), 3))
  333.     set Tag               =   #(MiniportDrivers, $(MiniportDriver), 4)
  334.     set InstalledDisplays =   #(MiniportDrivers, $(MiniportDriver), 5)
  335.     set VgaCompatible     =   #(MiniportDrivers, $(MiniportDriver), 6)
  336.     set EventMessageFile  =   #(MiniportDrivers, $(MiniportDriver), 7)
  337.     set TypesSupported    =   #(MiniportDrivers, $(MiniportDriver), 8)
  338.  
  339.     read-syms ServicesEntry
  340.     detect    ServicesEntry
  341.  
  342. installtheoption = +
  343.  
  344.     ;
  345.     ; Code to add files to copy list
  346.     ;
  347.  
  348.     ifstr(i) $(AddCopy) == "YES"
  349.         set DoActualCopy = NO
  350.         set FileToCheck = #(Files-DisplayMiniportDrivers, $(MiniportDriver), 2)
  351.         LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\drivers\"$(FileToCheck)
  352.         ifstr(i) $(STATUS) == NO
  353.             set DoActualCopy = YES
  354.             goto addfiles
  355.         endif
  356.         ForListDo $(InstalledDisplays)
  357.             set FileToCheck = #(Files-DisplayDLLs, $($), 2)
  358.             LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\"$(FileToCheck)
  359.             ifstr(i) $(STATUS) == NO
  360.                 set DoActualCopy = YES
  361.             endif
  362.         EndForListDo
  363.  
  364.         ;
  365.         ; tsk: check if p91inst.exe and res.dat exist
  366.         ;
  367.  
  368.         set FileToCheck = #(Files-Install, install, 2)
  369.         LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\"$(FileToCheck)
  370.         ifstr(i) $(STATUS) == NO
  371.             set DoActualCopy = YES
  372.         endif
  373.  
  374.         set FileToCheck = #(Files-RESDAT, resdat, 2)
  375.         LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\"$(FileToCheck)
  376.         ifstr(i) $(STATUS) == NO
  377.             set DoActualCopy = YES
  378.         endif
  379.  
  380.  
  381.  
  382.  
  383. addfiles = +
  384.         ifstr(i) $(DoActualCopy) == NO
  385.             shell "subroutn.inf" DriversExist $($0) $(String1)
  386.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  387.                 Debug-Output "VIDEO.INF: shelling DriversExist failed"
  388.                 goto finish_InstallOption
  389.             endif
  390.  
  391.             ifstr(i) $($R0) == STATUS_CURRENT
  392.             else-ifstr(i) $($R0) == STATUS_NEW
  393.                 set DoActualCopy = YES
  394.             else-ifstr(i) $($R0) == STATUS_USERCANCEL
  395.                 Debug-Output "VIDEO.INF: User cancelled video installation"
  396.                 goto finish_InstallOption
  397.             else
  398.                 Debug-Output "VIDEO.INF: Error reported in DriversExist routine in SUBROUTN.INF"
  399.                 goto finish_InstallOption
  400.             endif
  401.         endif
  402.  
  403.         ifstr(i) $(DoActualCopy) == YES
  404.  
  405.             shell "subroutn.inf" DoAskSourceEx $(SrcDir) $(String2)
  406.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  407.                 Debug-Output "VIDEO.INF: shelling DoAskSourceEx failed"
  408.                 goto finish_InstallOption
  409.             endif
  410.  
  411.             ifstr(i) $($R0) == STATUS_SUCCESSFUL
  412.                 set SrcDir = $($R1)
  413.                 ifstr(i) $($R2) != ""
  414.                     set DrivesToFree = >($(DrivesToFree), $($R2))
  415.                 endif
  416.             else
  417.                 Debug-Output "VIDEO.INF: User cancelled asking source."
  418.                 goto finish_InstallOption
  419.             endif
  420.  
  421.             install Install-AddCopyOption
  422.             ifstr(i) $(STF_INSTALL_OUTCOME) != "STF_SUCCESS"
  423.                 Debug-Output "VIDEO.INF: Adding video files to copy list failed"
  424.                 goto finish_InstallOption
  425.             endif
  426.         else
  427.             set DoCopy = NO
  428.         endif
  429.  
  430.     endif
  431.  
  432.     ifstr(i) $(DoCopy) == "YES"
  433.         read-syms ProgressCopy$($0)
  434.         install Install-DoCopyOption
  435.         ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_FAILURE"
  436.             Debug-Output "Copying files failed"
  437.             goto finish_InstallOption
  438.         else-ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_USERQUIT"
  439.             set Status = STATUS_USERCANCEL
  440.             goto finish_InstallOption
  441.         endif
  442.     endif
  443.  
  444.     ifstr(i) $(DoConfig) == "YES"
  445.  
  446.         ;
  447.         ; first run a privilege check on modifying the setup node
  448.         ;
  449.  
  450.         shell "registry.inf" CheckSetupModify
  451.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  452.             goto finish_InstallOption
  453.         endif
  454.  
  455.         ifstr(i) $($R0) != STATUS_SUCCESSFUL
  456.             goto finish_InstallOption
  457.         endif
  458.  
  459.         ;
  460.         ; first make a new video entry, the entry is created automatically
  461.         ; enabled
  462.         ;
  463.  
  464.         set ServiceNode   = $(MiniportDriver)
  465.         set ServiceBinary = %SystemRoot%\System32\drivers\#(Files-DisplayMiniportDrivers, $(MiniportDriver), 2)
  466.  
  467.         set ServicesValues   = { +
  468.                 {Type,           0, $(!REG_VT_DWORD),     $(Type)                  }, +
  469.                 {Start,          0, $(!REG_VT_DWORD),     $(!SERVICE_SYSTEM_START) }, +
  470.                 {Group,          0, $(!REG_VT_SZ),        $(Group)                 }, +
  471.                 {ErrorControl,   0, $(!REG_VT_DWORD),     $(ErrorControl)          }, +
  472.                 {Tag,            0, $(!REG_VT_DWORD),     $(Tag)                   }, +
  473.                 {BinaryPathName, 0, $(!REG_VT_EXPAND_SZ), $(ServiceBinary)         }  +
  474.                 }
  475.  
  476.         set ParametersValues = { +
  477.                 {InstalledDisplayDrivers,     0, $(!REG_VT_MULTI_SZ), $(InstalledDisplays) }, +
  478.                 {VgaCompatible,               0, $(!REG_VT_DWORD),    $(VgaCompatible)     }, +
  479.                 {DefaultSettings.BitsPerPel,  0, $(!REG_VT_DWORD),    $(BitsPerPel)        }, +
  480.                 {DefaultSettings.XResolution, 0, $(!REG_VT_DWORD),    $(XResolution)       }, +
  481.                 {DefaultSettings.YResolution, 0, $(!REG_VT_DWORD),    $(YResolution)       }  +
  482.                 }
  483.  
  484.         ifstr(i) $(VRefresh) != ""
  485.             set VRefreshValue = {DefaultSettings.VRefresh, 0, $(!REG_VT_DWORD), $(VRefresh)}
  486.             set ParametersValues = >($(ParametersValues), $(VRefreshValue))
  487.         endif
  488.  
  489.         ifstr(i) $(Interlaced) != ""
  490.             set InterlacedValue = {DefaultSettings.Interlaced, 0, $(!REG_VT_DWORD), $(Interlaced)}
  491.             set ParametersValues = >($(ParametersValues), $(InterlacedValue))
  492.         endif
  493.  
  494.         set DeviceValues     = {}
  495.         set EventLogValues   = { +
  496.                 {EventMessageFile, 0, $(!REG_VT_EXPAND_SZ), $(EventMessageFile) }, +
  497.                 {TypesSupported,   0, $(!REG_VT_DWORD),     $(TypesSupported)   }  +
  498.                 }
  499.  
  500.         shell "registry.inf"  MakeServicesEntry $(ServiceNode)      +
  501.                                                 $(ServicesValues)   +
  502.                                                 $(ParametersValues) +
  503.                                                 $(DeviceValues)     +
  504.                                                 $(EventLogValues)   +
  505.                                                 Device0
  506.  
  507.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  508.             Debug-Output "Couldn't execute MakeServicesEntry in registry.inf"
  509.             goto finish_InstallOption
  510.         endif
  511.  
  512.         ifstr(i) $($R0) != STATUS_SUCCESSFUL
  513.             Debug-Output "MakeServicesEntry failed for video"
  514.             goto finish_InstallOption
  515.         endif
  516.  
  517.         ;
  518.         ;
  519.         ; then disable the previous video entry
  520.         ;
  521.  
  522.         ifstr(i) $(CurrentEntry) != $(MiniportDriver)
  523.             ifstr(i) $(CurrentEntry) != VGA
  524.                 ifstr(i) $(CurrentEntry) != ""
  525.                     shell "registry.inf" ModifyServicesEntry $(CurrentEntry) $(!SERVICE_DISABLED)
  526.  
  527.                     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  528.                         Debug-Output "Couldn't find DisableServicesEntry in registry.inf"
  529.                         goto errorconfig
  530.                     endif
  531.  
  532.                     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  533.                         Debug-Output "DisableServices entry failed"
  534.                     endif
  535.                 endif
  536.             endif
  537.         endif
  538.  
  539.         goto configdone
  540.  
  541. errorconfig = +
  542.         ifstr(i) $(CurrentEntry) != $(MiniportDriver)
  543.             shell "registry.inf" ModifyServicesEntry $(MiniportDriver) $(!SERVICE_DISABLED)
  544.             ifstr(i) $(CurrentEntry) != ""
  545.                 shell "registry.inf" ModifyServicesEntry $(CurrentEntry) $(!SERVICE_SYSTEM_START)
  546.             endif
  547.         endif
  548.         goto finish_InstallOption
  549.  
  550. configdone = +
  551.  
  552.     endif
  553.  
  554.     set Status = STATUS_SUCCESSFUL
  555.  
  556. finish_InstallOption = +
  557.  
  558.     ;
  559.     ; tsk: Run p91inst.exe
  560.     ;
  561.  
  562.     RunProgram ExitCode "" "" $(!STF_WINDOWSSYSPATH)\p91inst.exe
  563.  
  564.     ForListDo $(DrivesToFree)
  565.         LibraryProcedure STATUS,$(!LIBHANDLE), DeleteNetConnection $($) "TRUE"
  566.     EndForListDo
  567.  
  568.     Return $(Status)
  569.  
  570.  
  571. [Install-AddCopyOption]
  572.  
  573.     set STF_VITAL = ""
  574.     ;
  575.     ; Add the files to the copy list
  576.     ;
  577.     AddSectionKeyFileToCopyList   Files-DisplayMiniportDrivers   +
  578.                                   $(MiniportDriver)              +
  579.                                   $(SrcDir)                      +
  580.                                   $(!STF_WINDOWSSYSPATH)\drivers
  581.  
  582.     ForListDo $(InstalledDisplays)
  583.         AddSectionKeyFileToCopyList   Files-DisplayDLLs          +
  584.                                       $($)                       +
  585.                                       $(SrcDir)                  +
  586.                                       $(!STF_WINDOWSSYSPATH)
  587.  
  588.     EndForListDo
  589.  
  590.  
  591.     ;
  592.     ; tsk: Add the p91inst.exe and p9100res.dat file to the copy list
  593.     ;
  594.     AddSectionFilesToCopyList     Files-Install                  +
  595.                                   $(SrcDir)                      +
  596.                                   $(!STF_WINDOWSSYSPATH)
  597.  
  598.     AddSectionFilesToCopyList     Files-RESDAT                   +
  599.                                   $(SrcDir)                      +
  600.                                   $(!STF_WINDOWSSYSPATH)
  601.  
  602.     exit
  603.  
  604.  
  605. [Install-DoCopyOption]
  606.  
  607.     ;
  608.     ; Copy files in the copy list
  609.     ;
  610.     CopyFilesInCopyList
  611.     exit
  612.  
  613. ;**************************************************************************
  614. ; PROGRESS GUAGE VARIABLES
  615. ;**************************************************************************
  616.  
  617. [ProgressCopyENG]
  618.     ProCaption   = "Windows NT Setup"
  619.     ProCancel    = "Cancel"
  620.     ProCancelMsg = "Windows NT is not correcly installed.  Are you sure you want "+
  621.                    "to cancel copying files?"
  622.     ProCancelCap = "Setup Message"
  623.     ProText1     = "Copying:"
  624.     ProText2     = "To:"
  625.  
  626. [StringsENG]
  627.     String1 = "Display"
  628.     String2 = "Please enter the full path to the OEM Display "+
  629.               "driver files.  Then choose Continue."
  630.  
  631. ;-----------------------------------------------------------------------
  632. ; SOURCE MEDIA DESCRIPTIONS
  633. ; -------------------------
  634. ; The OEM should list all the diskette labels here.  The source media
  635. ; description is used during copy to prompt the user for a diskette
  636. ; if the source is diskettes.
  637. ;
  638. ; Use 1 = "Diskette 1 Label" , TAGFILE = disk1
  639. ;     2 = "Diskette 2 Label" , TAGFILE = disk2
  640. ;     ...
  641. ;-----------------------------------------------------------------------
  642.  
  643. ;--------------------------------------------------------------------
  644. ; THE SECTIONS BELOW SHOULD BE AUTOMATICALLY GENERATED BY THE EXCEL
  645. ; SPREAD SHEETS
  646. ;--------------------------------------------------------------------
  647.  
  648. [Source Media Descriptions]
  649.     1  = "", TAGFILE = disk1
  650.  
  651. [Files-DisplayDLLs]
  652. P9100 = 1, P9100.dll, SIZE=12345
  653.  
  654. [Files-DisplayMiniportDrivers]
  655. P9100 = 1, P9100.sys, SIZE=12345
  656.  
  657. [Files-Install]
  658. install = 1, p91inst.exe, SIZE=12345
  659.  
  660. [Files-RESDAT]
  661. resdat = 1, p9100res.dat, SIZE=12345
  662.